home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Source / IBPalettes / WW3DKit / RIBPerspective.m < prev    next >
Encoding:
Text File  |  1995-03-22  |  1.3 KB  |  73 lines

  1. // copyright 1993 Michael B. Johnson; some portions copyright 1994, MIT
  2. // see COPYRIGHT for reuse legalities
  3. //
  4.  
  5. #import "RIBPerspective.h"
  6.  
  7. @implementation RIBPerspective
  8.  
  9. + initialize { return [RIBPerspective setVersion:1], self; }
  10.  
  11. - init
  12. {
  13.   [super init];
  14.   fov = 45.0;
  15.  
  16.   return self;
  17. }
  18.  
  19. - (float)fov {  return fov; }
  20.  
  21.  
  22. - setFOV:(float)newFOV
  23. {
  24.   fov = newFOV;
  25.   return self;
  26. }
  27.  
  28. - renderSelf:(WW3DCamera *)camera  startingAt:(RtFloat)shutterOpenTime endingAt:(RtFloat)shutterCloseTime
  29. {
  30.   RiPerspective(fov);
  31.  
  32.   return self;
  33. }
  34.  
  35. - transformCTM:(WW3DAttributeState *)attributeState startingAt:(RtFloat)shutterOpenTime endingAt:(RtFloat)shutterCloseTime
  36.   NXLogError("Warning: should be concatenating a Perspective matrix on the CTM...\n");
  37.   return self; 
  38. }
  39.  
  40. - (BOOL)isMotionBlurrable { return YES; }
  41.  
  42. #define typeVector "f"
  43. #define typeValues &fov
  44.  
  45. - read:(NXTypedStream*)stream 
  46. {
  47.     int version;
  48.     [super read:stream];
  49.  
  50.     version = NXTypedStreamClassVersion(stream,"RIBPerspective");
  51.     if (version == 0) NXReadTypes(stream,"i",&version), version=1;
  52.     if (version == 1)
  53.     {  NXReadTypes(stream,typeVector,typeValues);
  54.     } 
  55.     else 
  56.     {
  57.     }
  58.     return self;
  59. }
  60.  
  61. - write:(NXTypedStream*)stream 
  62. {
  63.     [super write:stream];
  64.  
  65.     NXWriteTypes(stream,typeVector, typeValues);
  66.  
  67.     return self;
  68. }
  69.  
  70.  
  71. @end
  72.